package com.liy.cloud.common.pw.dao;

import com.liy.cloud.common.pw.entity.PwSystemStorageEntity;
import com.das.framework.common.dao.IBaseDao;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 存储本站对应的库存信息 DAO接口定义
 * @ClassName: com.das.cloud.osc.entity.PwSystemStorageEntity
 * @Description: 
 * @author liyang
 * @date 2018-06-28 16:10:34
 */
public interface PwSystemStorageDao extends IBaseDao<PwSystemStorageEntity, String>{

    /*
     * @Author:  libs
     * @Date:    2018/7/10  20:07
     * @Description: 通过车站编号systemId 和 物品编号itemId 更新库存实体
     **/
    int updateBySystemIdAndItemId(PwSystemStorageEntity entity) throws Exception;

    /**
     *
     * 功能描述：通过车站编号systemId、物品编号itemId 和 物品状态 status 更新库存实体
     *
     * @param entity 要更新的库存，必须字段：车站编号systemId、物品编号itemId 和 物品状态 status
     * @return 
     * @auther libs
     * @date 2018/9/26 13:45
     */
    int updateByCondition(PwSystemStorageEntity entity) throws Exception;

    /**
     * 功能描述：通过车站编号systemId、物品编号itemId 和 物品状态 status 查询库存实体
     *
     * @param entity 查询条件，必须字段：车站编号systemId、物品编号itemId 和 物品状态 status
     * @return 
     * @auther libs
     * @date 2018/9/26 13:52
     */
    PwSystemStorageEntity queryByCondition(PwSystemStorageEntity entity) throws Exception;

    /*
     * @Author:  libs
     * @Date:    2018/7/10  19:24
     * @Description: 通过车站编号systemId 和 物品编号itemId 查询库存实体
     **/
    PwSystemStorageEntity queryStorageBySystemIdAndItemId(@Param("systemId") String systemId, @Param("itemId") String itemId) throws Exception;

    /*
     * @Author:  liyang
     * @Date:    2018/7/12  19:36
     * @Description: 通过车站编号systemId 查询车站所有的库存数据
     **/
    List<PwSystemStorageEntity> queryStorageDataBySystemId(String systemId);

    /**
     * 返回库存数量
     * @return
     * @throws Exception
     */
    List<Map<String, Object>> getStorageNum() throws Exception;
}